﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using ECOSYSTEM_BL;
using ECOSYSTEM_Dominio;
namespace ECOSYSTEMPRESENTACION
{
    public partial class frmTCambioIGV : Form
    {
        public frmTCambioIGV()
        {
            InitializeComponent();
        }
        public Interfaz Manipular { set; get; }
        Temporal elTemporal = new Temporal();
        TemporalBL elTemporalBL = new TemporalBL();
        List<Temporal> lista;
        Int32 NroElem;
        private Temporal ObtenerObjeto() {
            if (txtTasaIGV.Text == "")
                elTemporal.IGV = Convert.ToDouble(lblTasaIGVActual.Text);
            else
                elTemporal.IGV = Convert.ToDouble(txtTasaIGV.Text);
            if (txtTasaCambio.Text == "")
                elTemporal.TasaCambio = Convert.ToDouble(lblTasaCambioActual.Text);
            else
                elTemporal.TasaCambio = Convert.ToDouble(txtTasaCambio.Text);
            if (cmbMonedaVentas.Text == "")
                elTemporal.MonedaVentas = lblMoneda.Text;
            else
                elTemporal.MonedaVentas = cmbMonedaVentas.Text;
            elTemporal.Fecha = DateTime.Now.ToShortDateString();
            return elTemporal;
        }
        private Boolean guardarTemporal() {
            Temporal elTemporal = ObtenerObjeto();
            elTemporalBL.guardarTemporal(elTemporal);
            return true;
        }
        private void LlenarDatosActuales() {
            lista = elTemporalBL.ObtenerActualesDatos();
            NroElem = lista.Count;
            if (lista.Count == 0)
            {
                lblTasaCambioActual.Text = "2.8";
                lblTasaIGVActual.Text = "19";
                lblMoneda.Text = "SOLES";
            }
            else{
                foreach (Temporal fila in lista) {
                    this.lblTasaIGVActual.Text = fila.IGV.ToString();
                    this.lblTasaCambioActual.Text =fila.TasaCambio.ToString();
                    this.lblMoneda.Text = fila.MonedaVentas.ToString();
                }
            }
            txtTasaIGV.Text = lblTasaIGVActual.Text;
            txtTasaCambio.Text = lblTasaCambioActual.Text;
            cmbMonedaVentas.Text = lblMoneda.Text;
        }
        private Boolean ActualizarDatos() {
            if (txtTasaIGV.Text == lblTasaIGVActual.Text && txtTasaCambio.Text == lblTasaCambioActual.Text && cmbMonedaVentas.Text == lblMoneda.Text && NroElem!=0)
            {
                elTemporalBL.ActualizarTemporal();
                ParaActivarMenu();
                this.Close();
            }
            else {
                guardarTemporal();
                ParaActivarMenu();
                this.Close();
            }
            return true;
        }
        private void ParaActivarMenu() {             
            if (lblActualizando.Text !="Actualizando")
                this.Manipular.ActivarMenu(true);
        }
        //--> EVENTOS <--
        

        private void frmTCambioIGV_Load(object sender, EventArgs e)
        {
            LlenarDatosActuales();
            txtTasaCambio.Select();
        }
        private void btnCancelar_Click(object sender, EventArgs e)
        {
            try
            {
                ActualizarDatos();
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
        }

        private void btnGuardarDatos_Click(object sender, EventArgs e)
        {
            try
            {
                ActualizarDatos();
                MessageBox.Show("GUARDADO CORRECTAMENTE");
                LlenarDatosActuales();
                this.Close();
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
        }
    }
}
